package com.huawei.esdk.tp.device.smc;

import java.util.Date;
import java.util.List;

import com.huawei.esdk.platform.common.SDKErrorCode;
import com.huawei.esdk.platform.common.SDKResult;
import com.huawei.esdk.tp.domain.model.Conference;
import com.huawei.esdk.tp.domain.model.PeriodicalConference;
import com.huawei.esdk.tp.domain.model.ScheduleConference;
import com.huawei.esdk.tp.domain.model.Site;
import com.huawei.esdk.tp.domain.model.SiteInConference;

public interface IConferenceManagerCapability
{
    public SDKResult<ScheduleConference> scheduleConference(
            ScheduleConference conf);
    //修改会议
    public SDKResult<ScheduleConference> editScheduleConference(
            ScheduleConference conf);
    //预约周期会议
    public SDKResult<PeriodicalConference> scheduleRecurrenceConference(
            PeriodicalConference conf);
    //修改周期会议
    public SDKResult<PeriodicalConference> editScheduleRecurrenceConference(
            PeriodicalConference conf);
    
    public SDKResult<List<SiteInConference>> queryConfSitesStatus(String confId, List<String> siteUris);
    
    SDKResult<ScheduleConference> addSite(String confId, Site site, Date beginTime, boolean useAnonymousSite);
    
    SDKErrorCode removeSite(String confId, String siteUri);
    
    SDKErrorCode removeSite(String confId, SiteInConference site);
    
    SDKErrorCode prolongScheduleConf(String confId, Date beginDate, Integer prolongMinutes);

    public SDKErrorCode connectSites(String confID, List<String> sitesUri);
    
    public SDKErrorCode disconnectSites(String confID, List<String> sitesUri);

    public SDKErrorCode muteSites(String confID, List<String> sitesUri,
            boolean actionCode);

    public SDKErrorCode quietSites(String confID, List<String> sitesUri,
            boolean actionCode);

    SDKResult<List<Conference>> queryConfStatus(List<String> confIds);

}
